Chrome 138 Beta

Publicado em 28 de maio de 2025

A menos que indicado de outra forma, as mudanças a seguir se aplicam à versão mais recente do canal Beta do Chrome para Android, ChromeOS, Linux, macOS e Windows. Saiba mais sobre os recursos listados aqui nos links fornecidos ou na lista em ChromeStatus.com. O Chrome 138 é Beta desde 28 de maio de 2025. Faça o download da versão mais recente em Google.com para computadores ou na Google Play Store no Android.

CSS e interface

Esta versão adiciona seis novos recursos de CSS e interface.

Palavra-chave de dimensionamento stretch do CSS

Uma palavra-chave para propriedades de dimensionamento do CSS (por exemplo, width e height) que permite que os elementos cresçam para preencher exatamente o espaço disponível do bloco que os contém. É semelhante a 100%, exceto que o tamanho resultante é aplicado à caixa de margem do elemento em vez da caixa indicada por box-sizing. O uso dessa palavra-chave permite que o elemento mantenha as margens e seja o maior possível.

As funções relacionadas ao sinal abs() e sign() calculam várias funções relacionadas ao sinal do argumento.

Variável de ambiente CSS para escala de fonte no nível do SO

Expõe a escala de fonte preferida de um usuário ao CSS. No momento, não é prático para uma página detectar se o usuário mudou o tamanho da fonte com as preferências do sistema operacional. Essa variável de ambiente do CSS vai refletir a escala escolhida pelo usuário.

sibling-index() e sibling-count() do CSS

As funções sibling-index() e sibling-count() podem ser usadas como números inteiros em valores de propriedade CSS para estilizar um elemento com base na posição dele entre os elementos irmãos ou no número total de elementos irmãos, respectivamente. Essas funções podem ser usadas diretamente como valores inteiros, mas de maneira mais interessante dentro de expressões calc().

li {
  animation-delay: calc(0.1s * sibling-index());
}

Notação funcional de progresso da interpolação: função progress() do CSS

A notação funcional progress() é uma função matemática que retorna um valor <number> representando a posição de um cálculo (o valor de progresso) entre outros dois cálculos (o valor de início e de conclusão do progresso).

API Viewport Segments Enumeration

A API Viewport Segments permite que os desenvolvedores adaptem o layout da Web para segmentar dispositivos dobráveis. Os segmentos de janela de visualização definem a posição e as dimensões de uma região logicamente separada da janela de visualização. Os segmentos da janela de visualização são criados quando a janela é dividida por um ou mais recursos de hardware (como uma dobra ou uma articulação entre telas separadas) que funcionam como um divisor. Os segmentos são as regiões da janela de visualização que podem ser tratadas como logicamente distintas pelo desenvolvedor.

APIs Web

Adicionamos suporte a metadados de orientação de frames de vídeo aos WebCodecs.

Introduz os valores rotation: int e flip: bool em várias interfaces relacionadas a vídeos em WebCodecs para que os desenvolvedores possam trabalhar com fontes de frames que têm orientação (por exemplo, câmeras Android e determinadas mídias). A interface VideoFrame aumenta a capacidade de criar VideoFrames com rotação e inversão arbitrárias, além de acionadores para essas informações no objeto VideoFrame. O objeto VideoDecoderConfig ganha campos rotation e flip que são emitidos automaticamente em objetos VideoFrame decodificados. A classe VideoEncoder ganha mecanismos para transmitir informações de rotação e inversão de encode() para o VideoDecoderConfig emitido como parte de EncodedVideoChunkMetadata. Se encode() for chamado com frames com orientação diferente, uma exceção não fatal será gerada. O método configure() pode ser usado para redefinir a orientação permitida.

API Crash Reporting: is_top_level e visibility_state

Esse recurso adiciona campos de string is_top_level e visibility_state ao corpo da API de relatórios de falhas que é enviado para o endpoint de relatórios padrão para relatórios de falhas.

Escape < e > em atributos na serialização

Escape < e > em valores de atributos na serialização. Isso reduz o risco de ataques XSS de mutação, que ocorrem quando o valor de um atributo é interpretado como um token de tag de início depois de ser serializado e analisado novamente.

Política de integridade para scripts

A sub-regra de integridade (SRI, na sigla em inglês) permite que os desenvolvedores verifiquem se os recursos que pretendem carregar são realmente os que estão sendo carregados. No entanto, atualmente não há uma maneira de os desenvolvedores terem certeza de que todos os scripts são validados usando o SRI. O cabeçalho Integrity-Policy permite que os desenvolvedores declarem que todos os recursos de um determinado tipo precisam ser verificados quanto à integridade. Se um recurso desse tipo for carregado sem metadados de integridade, a tentativa vai falhar e acionar um relatório de violação.

Cota de armazenamento informada previsível

Informe uma cota de armazenamento previsível da API Estimate do StorageManager para sites que não têm permissões de armazenamento ilimitadas. É possível detectar o modo de navegação de um usuário usando a cota de armazenamento informada, porque o espaço de armazenamento disponibilizado é significativamente menor no modo de navegação anônima do que no modo normal.

Essa é uma mitigação que impede a detecção do modo de navegação de um usuário usando a API de armazenamento, informando uma cota artificial, igual ao uso + min(10 GiB, disco arredondado para cima até o valor mais próximo de 1 GiB), em todos os modos de navegação para sites com permissões de armazenamento limitadas. Os sites com permissões de armazenamento ilimitado não serão afetados. A cota obrigatória também não será afetada.

Evento pushsubscriptionchange na renovação da assinatura

O evento pushsubscriptionchange é disparado em service workers quando uma origem para a qual uma assinatura push existia no passado, mas foi revogada devido a uma mudança de permissão (de concedida para negada/padrão), é concedida novamente a permissão de notificação. O evento será acionado com uma oldSubscription vazia e newSubscription.

Regras de especulação: adicione prefetchCache e prerenderCache ao cabeçalho Clear-Site-Data

Dois novos valores para o cabeçalho Clear-Site-Data para ajudar os desenvolvedores a limpar o cache de pré-renderização e de pré-carregamento: prefetchCache e prerenderCache. Elas podem ser enviadas em qualquer solicitação e não precisam ser feitas na solicitação de documento. Por exemplo, elas podem ser retornadas em respostas de chamadas de API de adição ao carrinho ou de login e logout para limpar especulações sobre a mudança de estado.

Regras de especulação: campo target_hint

Isso estende a sintaxe das regras de especulação para permitir que os desenvolvedores especifiquem o campo target_hint. Esse campo fornece uma dica para indicar um destino navegável em que uma página pré-renderizada será ativada. Quando _blank é especificado como uma dica, uma página pré-renderizada pode ser ativada para uma abertura navegável por window.open(). O campo não tem suporte para pré-busca.

Política rígida de mesma origem para a API Storage Access

Ajusta a semântica da API Storage Access para seguir estritamente a política de mesma origem em relação à segurança. Ou seja, o uso de document.requestStorageAccess() em um frame só anexa cookies às solicitações para a origem do iframe (não ao site) por padrão.

API Summarizer

Uma API JavaScript para produzir resumos do texto de entrada, com o suporte de um modelo de linguagem de IA. Espera-se que os navegadores e sistemas operacionais tenham acesso a um modelo de linguagem. Ao expor esse modelo integrado, evitamos que todos os sites precisem fazer o download do próprio modelo de linguagem de vários gigabytes ou enviar texto de entrada para APIs de terceiros. A API de resumo, em particular, expõe uma API de alto nível para interagir com um modelo de linguagem para resumir entradas de uma variedade de casos de uso de uma maneira que não depende do modelo de linguagem específico em questão. Uma política corporativa (GenAILocalFoundationalModelSettings) está disponível para desativar o download do modelo, o que tornaria essa API indisponível.

Saiba mais em Gerar resumos concisos com a IA integrada.

API Language Detector

Uma API JavaScript para detectar qual idioma é usado em determinado texto, com níveis de confiança. Esse é um complemento importante para a tradução, que é a detecção de idioma, e pode ser usado em combinação com a API Translator. Por exemplo, use a entrada do usuário em um idioma desconhecido, determine o idioma e traduza para um idioma de destino específico. Embora os navegadores geralmente já tenham recursos de detecção de idioma, isso oferece o mesmo poder aos desenvolvedores da Web com uma API JavaScript, complementando a API de tradução.

Uma política corporativa (GenAILocalFoundationalModelSettings) está disponível para desativar o download do modelo, o que tornaria essa API indisponível.

Saiba mais em Detectar qual idioma é usado com a IA integrada.

API Translator

Uma API JavaScript para oferecer recursos de tradução de idiomas a páginas da Web. Embora os navegadores estejam cada vez mais oferecendo tradução de idiomas aos usuários, esses recursos de tradução também podem ser úteis para desenvolvedores da Web. Isso é especialmente o caso quando as capacidades de tradução integradas do navegador não ajudam, como em serviços ao vivo e interativos. Uma política corporativa (GenAILocalFoundationalModelSettings) está disponível para desativar o download do modelo que tornaria essa API indisponível.

Saiba mais em Tradução com IA integrada.

Extensões de escopo do app da Web

Adiciona um campo de manifesto de app da Web "scope_extensions" que permite que os apps da Web estendam o escopo a outras origens. Isso permite que sites que controlam vários subdomínios e domínios de nível superior sejam apresentados como um único app da Web. É necessário que as origens listadas confirmem a associação com o app da Web usando um arquivo de configuração .well-known/web-app-origin-association.

Web serial por Bluetooth no Android

Esse recurso permite que páginas da Web e apps da Web se conectem a portas seriais por Bluetooth em dispositivos Android. O Chrome no Android agora oferece suporte à API Web Serial por Bluetooth RFCOMM. As políticas corporativas atuais (DefaultSerialGuardSetting, SerialAllowAllPortsForUrls, SerialAllowUsbDevicesForUrls, SerialAskForUrls e SerialBlockedForUrls) em outras plataformas são ativadas em estados future_on para Android. Todas as políticas, exceto SerialAllowUsbDevicesForUrls, serão ativadas depois que o recurso for ativado. O SerialAllowUsbDevicesForUrls será ativado em um lançamento futuro, depois que o Android oferecer suporte a portas seriais com fio no nível do sistema.

Suspensões de uso e remoções

Esta versão do Chrome apresenta as seguintes suspensões de uso e remoções. Acesse o ChromeStatus.com para conferir listas de descontinuações planejadas, descontinuações atuais e remoções anteriores.

Esta versão do Chrome descontinua dois recursos.

A remoção de intervalos assíncronos para extensões de origem de mídia foi descontinuada

O padrão de origem de mídia foi alterado há muito tempo para impedir o comportamento definido de forma ambígua envolvendo remoções de intervalo assíncronas:

  • SourceBuffer.abort() não aborta mais operações SourceBuffer.remove().
  • A configuração MediaSource.duration não pode mais truncar a mídia em buffer atual.

Agora, exceções serão geradas nos dois casos.

Remover o substituto do SwiftShader

A permissão para fallback automático para o WebGL com suporte do renderizador de software SwiftShader foi descontinuada, e a criação de contexto do WebGL vai falhar em vez de retornar ao SwiftShader. Isso foi feito por dois motivos principais:

  1. O SwiftShader é um alto risco de segurança devido ao código JIT em execução no processo de GPU do Chromium.
  2. Os usuários têm uma experiência ruim ao alternar de um WebGL de alto desempenho com suporte de GPU para uma implementação com suporte de CPU. Os usuários não têm controle sobre esse comportamento, e é difícil descrevê-lo em relatórios de bugs.

Durante o período de descontinuação, um aviso vai aparecer no console do Chrome DevTools quando um contexto do WebGL for criado e respaldado pelo SwiftShader. A transmissão de --enable-unsafe-swiftshader removerá essa mensagem de aviso.